package org.whatever.aha.zjut.platform.dto.project;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.micrometer.core.lang.Nullable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import org.whatever.aha.zjut.platform.vo.project.ProjectMemberVo;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @author Vc
 * @version 1.0
 * @Desc
 * @date 2021/09/15 0:13
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("学生粗略项目信息Dto")
public class ProjectDto {
    /**
     * 项目名称
     */
    @ApiModelProperty("项目名称")
    @NotNull(message = "项目名称不能为空")
    String projectName;
    /**
     * 项目得分
     */
    @ApiModelProperty("项目得分")
    Double projectScore;
    /**
     * 项目排名
     */
    @ApiModelProperty("项目排名")
    Integer projectRank;
    /**
     * 项目状态(1：不可见（院级未推荐）、2:未审核、3:退回修改、4:已审核) 校级管理员视角
     */
    @ApiModelProperty("项目状态(1：不可见（院级未推荐）、2:未审核、3:退回修改、4:已审核) 校级管理员视角")
    Integer projectSchoolStatus;
    /**
     * 项目状态(1:不可见（学生未提交）、2:未审核、3:退回修改、4:已审核) 院级管理员视角
     */
    @ApiModelProperty("项目状态(1:不可见（学生未提交）、2:未审核、3:退回修改、4:已审核) 院级管理员视角")
    Integer projectAcademyStatus;
    /**
     * 是否拟推荐项目
     */
    @ApiModelProperty("是否拟推荐项目")
    Boolean projectSupposeSubmit;
    /**
     * 项目状态(1:待提交、2:已提交、3:已退回、4:已完结) 学生视角
     */
    @ApiModelProperty("项目状态(1:待提交、2:已提交、3:已退回、4:已完结) 学生视角")
    Integer projectStudentStatus;
    /**
     * 项目组别
     */
    @ApiModelProperty("项目组别")
    @NotNull(message = "项目组别不能为空")
    String projectGroup;
    /**
     * 项目标签
     */
    @ApiModelProperty("项目标签")
    @NotNull(message = "项目标签不能为空")
    String projectTag;
    /**
     * 项目学院id
     */
    @ApiModelProperty("项目学院id")
    @NotNull(message = "项目学院id不能为空")
    @Min(1)
    int projectAcademyId;
    /**
     * 赛事奖励id(0:特等  1:一等  2：二等  3：三等  4：鼓励 )
     */
    @ApiModelProperty("赛事奖励id(0:特等  1:一等  2：二等  3：三等  4：鼓励 )")
    Integer projectAwardId;
    /**
     * 是否校团委推荐 0：否、1：是
     */
    @ApiModelProperty("是否校团委推荐 0：否、1：是")
    Boolean projectSchoolRec;
    /**
     * 是否省级推荐 0：否、1：是
     */
    @ApiModelProperty("是否省级推荐 0：否、1：是")
    Boolean projectProvinceRec;
     /**
     * 删除状态(0:未删除 1:已删除)
     */
    @ApiModelProperty("删除状态(0:未删除 1:已删除)")
    Boolean projectDeleteStatus;
    /**
     * 学院备注
     */
    @ApiModelProperty("学院备注")
    String projectAcademyNote;
    /**
     * 队友Id List
     */
    @ApiModelProperty("队友Id List")
    @Nullable
    List<ProjectMemberDto> memberDtos;
}
